package com.rainbow.support.half.message.handler.producer;

import com.rainbow.support.half.message.entity.HalfMessagePayload;
import org.springframework.lang.NonNull;
/**
 * rocketMq半事务统一处理
 * 生产者业务处理的逻辑流程
 * 定义统一的生产者处理规范
 * @author 傅为地
 */
public interface HalfMsgProducerHandler extends ValidateProducerHandler {


    /**
     * Mq事务监听器,本地生产者处理接口
     * 不推荐采用此方法处理生产者,消息体内日期格式可能存在问题
     * 推荐采用{@link #process(HalfMessagePayload producer)}
     * @param message 生产者参数
     * @return 本地事务处理结果
     */
    @Deprecated
    boolean process(@NonNull String message);

    /**
     * Mq事务监听器,本地生产者处理接口
     *
     * @param producer 生产者参数
     * @return 本地事务处理结果
     */
    boolean process(@NonNull HalfMessagePayload<?> producer);


}
